package com.example.snap_it;

import java.util.LinkedList;

import snap_it.excecoes.NaoPodemosAcessarMemoriaExternaException;


import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.view.Menu;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

public class MostrarFotosDoAlbum extends Activity 
{
	private String nomeDoAlbum;
	private LinkedList<FotoEDescricao> fotosDoAlbum;
	private int fotoCentralEstahEmQuePosicaoDaLinkedList;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) 
	{
		super.onCreate(savedInstanceState);
		try
		{
			setContentView(R.layout.activity_mostrar_fotos_do_album);
			Intent intentQueIniciouActivity = getIntent();
			
			this.nomeDoAlbum = intentQueIniciouActivity.getStringExtra("nomeAlbum");
			TextView textNomeAlbum = (TextView) findViewById(R.id.nomeAlbum);
			textNomeAlbum.setText(this.nomeDoAlbum);
			
			SingletonArmazenaAlbumDeFotosTiradas conheceAlbunsDeFotos = 
								SingletonArmazenaAlbumDeFotosTiradas.getInstance();
			this.fotosDoAlbum = conheceAlbunsDeFotos.getAlbumDeFotos(nomeDoAlbum);
			
			fotoCentralEstahEmQuePosicaoDaLinkedList = 0;
			mudarFotoEDescricaoCentralDeAcordoComPosicaoAtual();
		}
		catch(NaoPodemosAcessarMemoriaExternaException exc)
		{
			 String mensagemErroMemoriaExterna =  getResources().getString(R.string.erroAcessoMemoriaExterna);
			 Toast.makeText(MostrarFotosDoAlbum.this, mensagemErroMemoriaExterna, Toast.LENGTH_SHORT).show();
		}
		
		
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.mostrar_fotos_do_album, menu);
		return true;
	}
	
	private void mudarFotoEDescricaoCentralDeAcordoComPosicaoAtual()
	{
		ImageView imageViewFotoCentral = (ImageView) findViewById(R.id.fotoCentral);
		TextView textViewDescricaoFoto = (TextView) findViewById(R.id.descricaoFotoCentral);
		
		if(this.fotosDoAlbum.size() == 0)
		{
			//nao tirou foto nenhuma
			textViewDescricaoFoto.setText("nenhuma foto foi tirada");
		}
		else
		{
			FotoEDescricao fotoEDescricaoCentral =
					this.fotosDoAlbum.get(fotoCentralEstahEmQuePosicaoDaLinkedList);
			Bitmap bitmapFoto = fotoEDescricaoCentral.getFoto();
			String descricaoFoto = fotoEDescricaoCentral.getDescricao();
			
			imageViewFotoCentral.setImageBitmap(bitmapFoto);
			textViewDescricaoFoto.setText(descricaoFoto);
		}
	}
	
	public void aumentarPosicaoFotoCentral(View v)
	{
		if(this.fotoCentralEstahEmQuePosicaoDaLinkedList == this.fotosDoAlbum.size() - 1)
		{
			//chegamos ao final da lista, vamos voltar ao comeco
			this.fotoCentralEstahEmQuePosicaoDaLinkedList = 0;
		}
		else
		{
			this.fotoCentralEstahEmQuePosicaoDaLinkedList =
					this.fotoCentralEstahEmQuePosicaoDaLinkedList + 1;
		}
		
		mudarFotoEDescricaoCentralDeAcordoComPosicaoAtual();
	}
	
	public void diminuirPosicaoFotoCentral(View v)
	{
		if(this.fotoCentralEstahEmQuePosicaoDaLinkedList == 0)
		{
			//chegamos ao comeco da lista, vamos para o final dela
			this.fotoCentralEstahEmQuePosicaoDaLinkedList = this.fotosDoAlbum.size() - 1;
		}
		else
		{
			this.fotoCentralEstahEmQuePosicaoDaLinkedList =
					this.fotoCentralEstahEmQuePosicaoDaLinkedList - 1;
		}
		
		mudarFotoEDescricaoCentralDeAcordoComPosicaoAtual();
	}
	

}
